
import 'dart:collection';

import 'package:flutter_test_project/module/provider_test_page/models/item.dart';
import 'package:flutter_test_project/module/provider_test_page/xf_provider/xf_change_notifier.dart';

class CartModel extends XFChangeNotifier {
  // 用于保存购物车中商品列表
  final List<Item> _items = [];

  // 禁止改变购物车例的商品信息
  UnmodifiableListView<Item> get items => UnmodifiableListView(_items);

  // 购物车中商品的总价
  double get totalPrice => _items.fold(0, (value, item) => value + item.price * item.price);

  // 将 [item] 添加到购物车中。这是唯一一种能从外部改变购物车的方法。
  void add(Item item) {
    _items.add(item);
    // 通知监听器（订阅者），重新构建InheritedProvider，更新状态
    notifyListeners();
  }
}